When a computing device (e.g., a desktop computer, tablet computer, personal digital assistant, or mobile phone) is initialized (a.k.a. booted up), device drivers access corresponding hardware components to initialize the hardware components. For instance, the device drivers may serve as software interfaces to the hardware components to enable programs (e.g., an operating system) to access functionality of the hardware components. The device drivers traditionally access the corresponding hardware components serially due to hardware limitations of the computing device. One common technique for serializing access to hardware components is to have static load-time dependency among the various software drivers. For instance, if driver A has a dependency on driver B, driver B will not be loaded until driver A loads successfully. Static load-time dependency therefore causes drivers to be loaded serially. However, if static load-time dependency is used and a dependent driver fails to load correctly, the remaining dependent drivers typically are not loaded.